package com.admin.education.services.Interfaces;

import com.admin.education.common.exceptions.BadRequestException;
import com.admin.education.common.exceptions.ResourceNotFoundException;
import com.admin.education.dataTransferObject.PageResponse;
import com.admin.education.dataTransferObject.ServicesExcuteResult;
import com.admin.education.dataTransferObject.question.QuestionTransfer;
import com.admin.education.dataTransferObject.question.Request.CreateQuestionRequest;
import com.admin.education.dataTransferObject.question.Request.QueryQuestionRequest;
import com.admin.education.dataTransferObject.question.Request.UpdateQuestionRequest;

import javax.validation.Valid;

public interface IQuestionService {
    ServicesExcuteResult<PageResponse<QuestionTransfer>> queryQuestions(@Valid QueryQuestionRequest queryQuestionRequest);
    ServicesExcuteResult createQuestion(@Valid CreateQuestionRequest createQuestionRequest) throws BadRequestException;
    ServicesExcuteResult deleteQuestion(long questionId) throws ResourceNotFoundException;
    ServicesExcuteResult updateQuestion(long questionId, @Valid UpdateQuestionRequest updateQuestionRequest) throws BadRequestException, ResourceNotFoundException;
    ServicesExcuteResult<QuestionTransfer> queryQuestionById(long questionId) throws ResourceNotFoundException;
}
